Tagged build material for three-dimensional printing

ABSTRACT

A supply of build material such as a spool or cartridge is instrumented with a data tag that includes information about the build material. A three-dimensional printer can read the information from the tag and determine how to use the build material during fabrication of a three-dimensional object.

RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.14/064,974 filed on Oct. 28, 2013, now U.S. Pat. No. 9,233,504, whichclaims the benefit of U.S. App. No. 61/719,874 filed on Oct. 29, 2012,where the entire content of each of the foregoing is hereby incorporatedby reference.

BACKGROUND

In general, three-dimensional printers use build material of varioustype and configuration to print three-dimensional objects. In order toproperly process the build material through the three-dimensionalprinter extruder for the fabrication of an object, the three-dimensionalprinter controller may need at least a basic set of characteristics ofthe build material to determine operation.

There remains a need for methods and systems for the automatic detectionand acquiring of three-dimensional printer build materialcharacteristics.

SUMMARY

A supply of build material such as a spool or cartridge is instrumentedwith a data tag that includes information about the build material. Athree-dimensional printer can read the information from the tag anddetermine how to use the build material during fabrication of athree-dimensional object.

BRIEF DESCRIPTION OF THE FIGURES

The invention and the following detailed description of certainembodiments thereof may be understood by reference to the followingfigures:

FIG. 1 is a block diagram of a three-dimensional printer.

FIG. 2 depicts a networked three-dimensional printing environment.

FIG. 3 is a block diagram of a three-dimensional printer and a supply ofbuild material being connected through a coupling.

FIGS. 4A-4C depict embodiments of build material supplies.

FIGS. 5A-5D depict embodiments of tag sensors and data tags.

FIG. 6 is a flowchart of a method for using a three-dimensional printerto read build material supply tag data and fabricate an object.

DETAILED DESCRIPTION

All documents mentioned herein are hereby incorporated in their entiretyby reference. References to items in the singular should be understoodto include items in the plural, and vice versa, unless explicitly statedotherwise or clear from the text. Grammatical conjunctions are intendedto express any and all disjunctive and conjunctive combinations ofconjoined clauses, sentences, words, and the like, unless otherwisestated or clear from the context. Thus the term “or” should generally beunderstood to mean “and/or” and so forth.

The following description emphasizes three-dimensional printers usingfused deposition modeling or similar techniques where a bead of materialis extruded in a layered series of two dimensional patterns as “roads,”“paths” or the like to form a three-dimensional object from a digitalmodel. It will be understood, however, that numerous additivefabrication techniques are known in the art including without limitationmultijet printing, stereolithography, Digital Light Processor (“DLP”)three-dimensional printing, selective laser sintering, and so forth.Such techniques may benefit from the systems and methods describedbelow, and all such printing technologies are intended to fall withinthe scope of this disclosure, and within the scope of terms such as“printer”, “three-dimensional printer”, “fabrication system”, and soforth, unless a more specific meaning is explicitly provided orotherwise clear from the context.

In the following description, a variety of terms are used to describecontainers for build material such as a container, a spool, a cartridge,and so forth. Unless a different meaning is explicitly provided orotherwise clear from the context, all such terms are intended to refergenerally to a container or the like that holds a build material for useby a three-dimensional printer, without regard to whether the containerencloses the build material and without regard to the manner in whichthe container provides the build material to the three-dimensionalprinter.

FIG. 1 is a block diagram of a three-dimensional printer. In general,the printer 100 may include a build platform 102, an extruder 106, anx-y-z positioning assembly 108, and a controller 110 that cooperate tofabricate an object 112 within a working volume 114 of the printer 100.

The build platform 102 may include a surface 116 that is rigid andsubstantially planar. The surface 116 may provide a fixed, dimensionallyand positionally stable platform on which to build the object 112. Thebuild platform 102 may include a thermal element 130 that controls thetemperature of the build platform 102 through one or more active devices132, such as resistive elements that convert electrical current intoheat, Peltier effect devices that can create a heating or coolingeffect, or any other thermoelectric heating and/or cooling devices. Thethermal element 130 may be coupled in a communicating relationship withthe controller 110 in order for the controller 110 to controllablyimpart heat to or remove heat from the surface 116 of the build platform102.

The extruder 106 may include a chamber 122 in an interior thereof toreceive a build material. The build material may, for example, includeacrylonitrile butadiene styrene (“ABS”), high-density polyethylene(“HDPL”), polylactic acid (“PLA”), or any other suitable plastic,thermoplastic, or other material that can usefully be extruded to form athree-dimensional object. The extruder 106 may include an extrusion tip124 or other opening that includes an exit port with a circular, oval,slotted or other cross-sectional profile that extrudes build material ina desired cross-sectional shape.

The extruder 106 may include a heater 126 (also referred to as a heatingelement) to melt thermoplastic or other meltable build materials withinthe chamber 122 for extrusion through an extrusion tip 124 in liquidform. While illustrated in block form, it will be understood that theheater 126 may include, e.g., coils of resistive wire wrapped about theextruder 106, one or more heating blocks with resistive elements to heatthe extruder 106 with applied current, an inductive heater, or any otherarrangement of heating elements suitable for creating heat within thechamber 122 sufficient to melt the build material for extrusion. Theextruder 106 may also or instead include a motor 128 or the like to pushthe build material into the chamber 122 and/or through the extrusion tip124.

In general operation (and by way of example rather than limitation), abuild material such as ABS plastic in filament form may be fed into thechamber 122 from a spool or the like by the motor 128, melted by theheater 126, and extruded from the extrusion tip 124. By controlling arate of the motor 128, the temperature of the heater 126, and/or otherprocess parameters, the build material may be extruded at a controlledvolumetric rate. It will be understood that a variety of techniques mayalso or instead be employed to deliver build material at a controlledvolumetric rate, which may depend upon the type of build material, thevolumetric rate desired, and any other factors. All such techniques thatmight be suitably adapted to delivery of build material for fabricationof a three-dimensional object are intended to fall within the scope ofthis disclosure.

The x-y-z positioning assembly 108 may generally be adapted tothree-dimensionally position the extruder 106 and the extrusion tip 124within the working volume 114. Thus by controlling the volumetric rateof delivery for the build material and the x, y, z position of theextrusion tip 124, the object 112 may be fabricated in three dimensionsby depositing successive layers of material in two-dimensional patternsderived, for example, from cross-sections of a computer model or othercomputerized representation of the object 112. A variety of arrangementsand techniques are known in the art to achieve controlled linearmovement along one or more axes. The x-y-z positioning assembly 108 may,for example, include a number of stepper motors 109 to independentlycontrol a position of the extruder 106 within the working volume alongeach of an x-axis, a y-axis, and a z-axis. More generally, the x-y-zpositioning assembly 108 may include without limitation variouscombinations of stepper motors, encoded DC motors, gears, belts,pulleys, worm gears, threads, and so forth. For example, in one aspectthe build platform 102 may be coupled to one or more threaded rods by athreaded nut so that the threaded rods can be rotated to provide z-axispositioning of the build platform 102 relative to the extruder 106. Thisarrangement may advantageously simplify design and improve accuracy bypermitting an x-y positioning mechanism for the extruder 106 to be fixedrelative to a build volume. Any such arrangement suitable forcontrollably positioning the extruder 106 within the working volume 114may be adapted to use with the printer 100 described herein.

In general, this may include moving the extruder 106, or moving thebuild platform 102, or some combination of these. Thus it will beappreciated that any reference to moving an extruder relative to a buildplatform, working volume, or object, is intended to include movement ofthe extruder or movement of the build platform, or both, unless a morespecific meaning is explicitly provided or otherwise clear from thecontext. Still more generally, while an x, y, z coordinate system servesas a convenient basis for positioning within three dimensions, any othercoordinate system or combination of coordinate systems may also orinstead be employed, such as a positional controller and assembly thatoperates according to cylindrical or spherical coordinates.

The controller 110 may be electrically or otherwise coupled in acommunicating relationship with the build platform 102, the x-y-zpositioning assembly 108, and the other various components of theprinter 100. In general, the controller 110 is operable to control thecomponents of the printer 100, such as the build platform 102, the x-y-zpositioning assembly 108, and any other components of the printer 100described herein to fabricate the object 112 from the build material.The controller 110 may include any combination of software and/orprocessing circuitry suitable for controlling the various components ofthe printer 100 described herein including without limitationmicroprocessors, microcontrollers, application-specific integratedcircuits, programmable gate arrays, and any other digital and/or analogcomponents, as well as combinations of the foregoing, along with inputsand outputs for transceiving control signals, drive signals, powersignals, sensor signals, and so forth. In one aspect, this may includecircuitry directly and physically associated with the printer 100 suchas an on-board processor. In another aspect, this may be a processorassociated with a personal computer or other computing device coupled tothe printer 100, e.g., through a wired or wireless connection.Similarly, various functions described herein may be allocated betweenan on-board processor for the printer 100 and a separate computer. Allsuch computing devices and environments are intended to fall within themeaning of the term “controller” or “processor” as used herein, unless adifferent meaning is explicitly provided or otherwise clear from thecontext.

A variety of additional sensors and other components may be usefullyincorporated into the printer 100 described above. These othercomponents are generically depicted as other hardware 134 in FIG. 1, forwhich the positioning and mechanical/electrical interconnections withother elements of the printer 100 will be readily understood andappreciated by one of ordinary skill in the art. The other hardware 134may include a temperature sensor positioned to sense a temperature ofthe surface of the build platform 102, the extruder 126, or any othersystem components. This may, for example, include a thermistor or thelike embedded within or attached below the surface of the build platform102. This may also or instead include an infrared detector or the likedirected at the surface 116 of the build platform 102.

In another aspect, the other hardware 134 may include a sensor to detecta presence of the object 112 at a predetermined location. This mayinclude an optical detector arranged in a beam-breaking configuration tosense the presence of the object 112 at a predetermined location. Thismay also or instead include an imaging device and image processingcircuitry to capture an image of the working volume and to analyze theimage to evaluate a position of the object 112. This sensor may be usedfor example to ensure that the object 112 is removed from the buildplatform 102 prior to beginning a new build on the working surface 116.Thus the sensor may be used to determine whether an object is presentthat should not be, or to detect when an object is absent. The feedbackfrom this sensor may be used by the controller 110 to issue processinginterrupts or otherwise control operation of the printer 100.

The other hardware 134 may also or instead include a heating element(instead of or in addition to the thermal element 130) to heat theworking volume such as a radiant heater or forced hot air heater tomaintain the object 112 at a fixed, elevated temperature throughout abuild, or the other hardware 134 may include a cooling element to coolthe working volume.

FIG. 2 depicts a networked three-dimensional printing environment. Ingeneral, the environment 200 may include a data network 202interconnecting a plurality of participating devices in a communicatingrelationship. The participating devices may, for example, include anynumber of three-dimensional printers 204 (also referred tointerchangeably herein as “printers”), client devices 206, print servers208, content sources 210, mobile devices 212, and other resources 216.

The data network 202 may be any network(s) or internetwork(s) suitablefor communicating data and control information among participants in theenvironment 200. This may include public networks such as the Internet,private networks, telecommunications networks such as the PublicSwitched Telephone Network or cellular networks using third generation(e.g., 3G or IMT-2000), fourth generation (e.g., LTE (E-UTRA) orWiMax-Advanced (IEEE 802.16m)) and/or other technologies, as well as anyof a variety of corporate area or local area networks and otherswitches, routers, hubs, gateways, and the like that might be used tocarry data among participants in the environment 200.

The three-dimensional printers 204 may be any computer-controlleddevices for three-dimensional fabrication, including without limitationany of the three-dimensional printers or other fabrication orprototyping devices described above. In general, each such device mayinclude a network interface comprising, e.g., a network interface card,which term is used broadly herein to include any hardware (along withsoftware, firmware, or the like to control operation of same) suitablefor establishing and maintaining wired and/or wireless communications.The network interface card may include without limitation wired Ethernetnetwork interface cards (“NICs”), wireless 802.11 networking cards,wireless 802.11 USB devices, or other hardware for wireless local areanetworking. The network interface may also or instead include cellularnetwork hardware, wide area wireless network hardware or any otherhardware for centralized, ad hoc, peer-to-peer, or other radiocommunications that might be used to carry data. In another aspect, thenetwork interface may include a serial or USB port to directly connectto a computing device such as a desktop computer that, in turn, providesmore general network connectivity to the data network 202.

The printers 204 might be made to fabricate any object, practical orotherwise, that is amenable to fabrication according to each printer'scapabilities. This may be a model of a house or a tea cup, as depicted,or any other object such as gears or other machine hardware,replications of scanned three-dimensional objects, or fanciful works ofart.

Client devices 206 may be any devices within the environment 200operated by users to initiate, manage, monitor, or otherwise interactwith print jobs at the three-dimensional printers 204. This may includedesktop computers, laptop computers, network computers, tablets, or anyother computing device that can participate in the environment 200 ascontemplated herein. Each client device 206 generally provides a userinterface, which may include a graphical user interface, a text orcommand line interface, a voice-controlled interface, and/or agesture-based interface to control operation of remote three-dimensionalprinters 204. The user interface may be maintained by a locallyexecuting application on one of the client devices 206 that receivesdata and status information from, e.g., the printers 204 and printservers 208 concerning pending or executing print jobs. The userinterface may create a suitable display on the client device 206 foruser interaction. In other embodiments, the user interface may beremotely served and presented on one of the client devices 206, such aswhere a print server 208 or one of the three-dimensional printers 204includes a web server that provides information through one or more webpages or the like that can be displayed within a web browser or similarclient executing on one of the client devices 206. In one aspect, theuser interface may include a voice controlled interface that receivesspoken commands from a user and/or provides spoken feedback to the user.

A client device 206 may, for example include a removable memory device207 such as a USB drive, memory stick, or the like, which may be usedfor example to transfer digital models of three-dimensional objects toprinters 204.

The print servers 208 may include data storage, a network interface, anda processor and/or other processing circuitry. In the followingdescription, where the functions or configuration of a print server 208are described, this is intended to include corresponding functions orconfiguration (e.g., by programming) of a processor of the print server208. In general, the print servers 208 (or processors thereof) mayperform a variety of processing tasks related to management of networkedprinting. For example, the print servers 208 may manage print jobsreceived from one or more of the client devices 206, and provide relatedsupporting functions such as content search and management. A printserver 208 may also include a web server that provides web-based accessby the client devices 206 to the capabilities of the print server 208. Aprint server 208 may also communicate periodically withthree-dimensional printers 204 in order to obtain status informationconcerning, e.g., availability of printers and/or the status ofparticular print jobs, any of which may be subsequently presented to auser through the web server or any other suitable interface. A printserver 208 may also maintain a list of available three-dimensionalprinters 204, and may automatically select one of the three-dimensionalprinters 204 for a user-submitted print job, or may permit a user tospecify a single printer, or a group of preferred printers, forfabricating an object. Where the print server 208 selects the printerautomatically, any number of criteria may be used such as geographicalproximity, printing capabilities, current print queue, fees (if any) foruse of a particular three-dimensional printer 204, and so forth. Wherethe user specifies criteria, this may similarly include any relevantaspects of three-dimensional printers 204, and may permit use ofabsolute criteria (e.g., filters) or preferences, which may be weightedpreferences or unweighted preferences, any of which may be used by aprint server 208 to allocate a print job to a suitable resource.

In one aspect, the print server 208 may be configured to supportinteractive voice control of one of the printers 204. For example, theprint server 208 may be configured to receive a voice signal (e.g., indigitized audio form) from a microphone or other audio input of theprinter 204, and to process the voice signal to extract relevant contentsuch as a command for the printer. Where the command is recognized as aprint command, the voice signal may be further processed to extractadditional context or relevant details. For example, the voice signalmay be processed to extract an object identifier that specifies anobject for printing, e.g., by filename, file metadata, or semanticcontent. The voice signal may also be processed to extract a dimensionalspecification, such as a scale or absolute dimension for an object. Theprint server 208 may then generate suitable control signals for returnto the printer 204 to cause the printer 204 to fabricate the object.Where an error or omission is detected, the print server 208 may returna request for clarification to the printer 204, which may render therequest in spoken form through a speaker, or within a user interface ofthe printer 204 or an associated device.

Other user preferences may be usefully stored at the print server 208 tofacilitate autonomous, unsupervised fabrication of content from contentsources 210. For example, a print server 208 may store a user'spreference on handling objects greater than a build volume of a printer.These preferences may control whether to resize the object, whether tobreak the object into multiple sub-objects for fabrication, and whetherto transmit multiple sub-objects to a single printer or multipleprinters. In addition, user preferences or requirements may be stored,such as multi-color printing capability, build material options andcapabilities, and so forth. More generally, a print queue (which may bea printer-specific or user-specific queue, and which may be hosted at aprinter 204, a server 208, or some combination of these) may be managedby a print server 208 according to one or more criteria from a remoteuser requesting a print job. The print server 208 may also store userpreferences or criteria for filtering content, e.g., for automaticprinting or other handling. While this is described below as a featurefor autonomous operation of a printer (such as a printer that locallysubscribes to a syndicated model source), any criteria that can be usedto identify models of potential interest by explicit type (e.g., labeledin model metadata), implicit type (e.g., determined based on analysis ofthe model), source, and so forth, may be provided to the print server208 and used to automatically direct new content to one or moreuser-specified ones of the three-dimensional printers 204.

In one aspect, the processor of the print server may be configured tostore a plurality of print jobs submitted to the web server in a log andto provide an analysis of print activity based on the log. This mayinclude any type of analysis that might be useful to participants in theenvironment 200. For example, the analysis may include tracking of thepopularity of particular objects, or of particular content sources. Theanalysis may include tracking of which three-dimensional printers 204are most popular or least popular, or related statistics such as theaverage backlog of pending print jobs at a number of thethree-dimensional printers 204. The analysis may include success of aparticular printer in fabricating a particular model or of a particularprinter in completing print jobs generally. More generally, anystatistics or data may be obtained, and any analysis may be performed,that might be useful to users (e.g., when requesting prints), contentsources (e.g., when choosing new printable objects for publication),providers of fabrication resources (e.g., when setting fees), or networkfacilitators such as the print servers 208.

A print server 208 may also maintain a database 209 of content, alongwith an interface for users at client devices 206 to search the database209 and request fabrication of objects in the database 209 using any ofthe three-dimensional printers 204. Thus in one aspect, a print server208 (or any system including the print server 208) may include adatabase 209 of three-dimensional models, and the print server 208 mayact as a server that provides a search engine for locating a particularthree-dimensional model in the database 209. The search engine may be atext-based search engine using keyword text queries, plain languagequeries, and so forth. The search engine may also or instead include animage-based search engine configured to identify three-dimensionalmodels similar to a two-dimensional or three-dimensional image provideby a user.

In another aspect, the printer server 208 may periodically search forsuitable content at remote locations on the data network, which contentmay be retrieved to the database 209, or have its remote location (e.g.,a URL or other network location identifier) stored in the database 209.In another aspect, the print server 208 may provide an interface forsubmission of objects from remote users, along with any suitablemetadata such as a title, tags, creator information, descriptivenarrative, pictures, recommended printer settings, and so forth. In oneaspect, the database 209 may be manually curated according to anydesired standards. In another aspect, printable objects in the database209 may be manually or automatically annotated according to contenttype, popularity, editorial commentary, and so forth.

The print server 208 may more generally provide a variety of managementfunctions. For example, the print server 204 may store a location of apredetermined alternative three-dimensional printer to execute a printjob from a remote user in the event of a failure by the one of theplurality of three-dimensional printers 204. In another aspect, theprint server 208 may maintain exclusive control over at least one of theplurality of three-dimensional printers 204, such that other usersand/or print servers cannot control the printer. In another aspect, theprint server 208 may submit a print job to a first available one of theplurality of three-dimensional printers 204.

In another aspect, a print server 208 may provide an interface formanaging subscriptions to sources of content. This may include tools forsearching existing subscriptions, locating or specifying new sources,subscribing to sources of content, and so forth. In one aspect, a printserver 208 may manage subscriptions and automatically direct new contentfrom these subscriptions to a three-dimensional printer 204 according toany user-specified criteria. Thus while it is contemplated that athree-dimensional printer 204 may autonomously subscribe to sources ofcontent through a network interface and receive new content directlyfrom such sources, it is also contemplated that this feature may bemaintained through a remote resource such as a print server 208.

A print server 208 may maintain print queues for participatingthree-dimensional printers 204. This approach may advantageouslyalleviate backlogs at individual printers 204, which may have limitedmemory capacity for pending print jobs. More generally, a print server208 may, by communicating with multiple three-dimensional printers 204,obtain a view of utilization of multiple networked resources thatpermits a more efficient allocation of print jobs than would be possiblethrough simple point-to-point communications among users and printers.Print queues may also be published by a print server 208 so that userscan view pending queues for a variety of different three-dimensionalprinters 204 prior to selecting a resource for a print job. In oneaspect, the print queue may be published as a number of print jobs andsize of print jobs so that a requester can evaluate likely delays. Inanother aspect, the print queue may be published as an estimated timeuntil a newly submitted print job can be initiated.

In one aspect, the print queue of one of the print servers 208 mayinclude one or more print jobs for one of the plurality ofthree-dimensional printers 204. The print queue may be stored locally atthe one of the plurality of three-dimensional printers. In anotheraspect, the print queue may be allocated between the database 209 and alocal memory of the three-dimensional printer 204. In another aspect,the print queue may be stored, for example, in the database 209 of theprint server 208. As used here, the term ‘print queue’ is intended toinclude print data (e.g., the three-dimensional model or toolinstructions to fabricate an object) for a number of print job (whichmay be arranged for presentation in order of expected execution), aswell as any metadata concerning print jobs. Thus, a portion of the printqueue such as the metadata (e.g., size, status, time to completion) maybe usefully communicated to a print server 208 for sharing among userswhile another portion of the print queue such as the model data may bestored at a printer in preparation for execution of a print job.

Print queues may implement various user preferences on prioritization.For example, for a commercial enterprise, longer print jobs may bedeferred for after normal hours of operation (e.g., after 5:00 p.m.),while shorter print jobs may be executed first if they can be completedbefore the end of a business day. In this manner, objects can beidentified and fabricated from within the print queue in a manner thatpermits as many objects as possible to be fabricated before apredetermined closing time. Similarly, commercial providers offabrication services may charge explicitly for prioritized fabrication,and implement this prioritization by prioritizing print queues in acorresponding fashion.

In another aspect, a print server 208 may provide a virtual workspacefor a user. In this virtual workspace, a user may search local or remotedatabases of printable objects, save objects of interest (or linksthereto), manage pending prints, specify preferences for receivingstatus updates (e.g., by electronic mail or SMS text), managesubscriptions to content, search for new subscription sources, and soforth. In one aspect, the virtual workspace may be, or may include,web-based design tools or a web-based design interface that permits auser to create and modify models. In one aspect, the virtual workspacemay be deployed on the web, while permitting direct fabrication of amodel developed within that environment on a user-specified one of thethree-dimensional printers 204, thus enabling a web-based designenvironment that is directly coupled to one or more fabricationresources.

The content sources 210 may include any sources of content forfabrication with a three-dimensional printer 204. This may, for example,include databases of objects accessible through a web interface orapplication programming interface. This may also or instead includeindividual desktop computers or the like configured as a server forhosted access, or configured to operate as a peer in a peer-to-peernetwork. This may also or instead include content subscription services,which may be made available in an unrestricted fashion, or may be madeavailable on a paid subscription basis, or on an authenticated basisbased upon some other relationship (e.g., purchase of a related productor a ticket to an event). It will be readily appreciated that any numberof content providers may serve as content sources 210 as contemplatedherein. By way of non-limiting example, the content sources 210 mayinclude destinations such as amusement parks, museums, theaters,performance venues, or the like, any of which may provide contentrelated to users who purchase tickets. The content sources 210 mayinclude manufacturers such as automobile, computer, consumerelectronics, or home appliance manufacturers, any of which may providecontent related to upgrades, maintenance, repair, or other support ofexisting products that have been purchased. The content sources 210 mayinclude artists or other creative enterprises that sell various works ofinterest. The content sources 210 may include engineering orarchitectural firms that provide marketing or advertising pieces toexisting or prospective customers. The content sources 210 may includemarketing or advertising firms that provide promotional items forclients. More generally, the content sources 210 may be any individualor enterprise that provides single or serial objects for fabrication bythe three-dimensional printers 204 described herein.

One or more web servers 211 may provide web-based access to and from anyof the other participants in the environment 200. While depicted as aseparate network entity, it will be readily appreciated that a webserver 211 may be logically or physically associated with one of theother devices described herein, and may, for example, provide a userinterface for web access to one of the three-dimensional printers 204,one of the print servers 208 (or databases 209 coupled thereto), one ofthe content sources 210, or any of the other resources 216 describedbelow in a manner that permits user interaction through the data network202, e.g., from a client device 206 or mobile device 212.

The mobile devices 212 may be any form of mobile device, such as anywireless, battery-powered device, that might be used to interact withthe networked printing environment 200. The mobile devices 212 may, forexample, include laptop computers, tablets, thin client networkcomputers, portable digital assistants, messaging devices, cellularphones, smart phones, portable media or entertainment devices, and soforth. In general, mobile devices 212 may be operated by users for avariety of user-oriented functions such as to locate printable objects,to submit objects for printing, to monitor a personally owned printer,and/or to monitor a pending print job. A mobile device 212 may includelocation awareness technology such as Global Positioning System (“GPS”),which may obtain information that can be usefully integrated into aprinting operation in a variety of ways. For example, a user may selectan object for printing and submit a model of the object to a printserver, such as any of the print servers described above. The printserver may determine a location of the mobile device 212 initiating theprint job and locate a closest printer for fabrication of the object.

In another aspect, a printing function may be location-based, using theGPS input (or cellular network triangulation, proximity detection, orany other suitable location detection techniques). For example, a usermay be authorized to print a model only when the user is near a location(e.g., within a geo-fenced area or otherwise proximal to a location), oronly after a user has visited a location. Thus a user may be providedwith printable content based upon locations that the user has visited,or while within a certain venue such as an amusement park, museum,theater, sports arena, hotel, or the like. Similarly, a matrix barcodesuch as a QR code may be employed for localization.

The other resources 216 may include any other software or hardwareresources that may be usefully employed in networked printingapplications as contemplated herein. For example, the other resources216 may include payment processing servers or platforms used toauthorize payment for content subscriptions, content purchases, orprinting resources. As another example, the other resources 216 mayinclude social networking platforms that may be used, e.g., to sharethree-dimensional models and/or fabrication results according to auser's social graph. In another aspect, the other resources 216 mayinclude certificate servers or other security resources for third partyverification of identity, encryption or decryption of three-dimensionalmodels, and so forth. In another aspect, the other resources 216 mayinclude online tools for three-dimensional design or modeling, as wellas databases of objects, surface textures, build supplies, and so forth.In another aspect, the other resources 216 may include a desktopcomputer or the like co-located (e.g., on the same local area networkwith, or directly coupled to through a serial or USB cable) with one ofthe three-dimensional printers 204. In this case, the other resource 216may provide supplemental functions for the three-dimensional printer 204in a networked printing context such as maintaining a print queue oroperating a web server for remote interaction with the three-dimensionalprinter 204. Other resources 216 also include supplemental resourcessuch as three-dimensional scanners, cameras, andpost-processing/finishing machines or resources. More generally, anyresource that might be usefully integrated into a networked printingenvironment may be one of the resources 216 as contemplated herein.

It will be readily appreciated that the various components of thenetworked printing environment 200 described above may be arranged andconfigured to support networked printing in a variety of ways. Forexample, in one aspect there is disclosed herein a networked computerwith a print server and a web interface to support networkedthree-dimensional printing. This device may include a print server, adatabase, and a web server as discussed above. The print server may becoupled through a data network to a plurality of three-dimensionalprinters and configured to receive status information from one or moresensors for each one of the plurality of three-dimensional printers. Theprint server may be further configured to manage a print queue for eachone of the plurality of three-dimensional printers. The database may becoupled in a communicating relationship with the print server andconfigured to store print queue data and status information for each oneof the plurality of three-dimensional printers. The web server may beconfigured to provide a user interface over the data network to a remoteuser, the user interface adapted to present the status information andthe print queue data for one or more of the plurality ofthree-dimensional printers to the user and the user interface adapted toreceive a print job from the remote user for one of the plurality ofthree-dimensional printers.

The three-dimensional printer 204 described above may be configured toautonomously subscribe to syndicated content sources and periodicallyreceive and print objects from those sources. Thus in one aspect thereis disclosed herein a device including any of the three-dimensionalprinters described above; a network interface; and a processor (whichmay without limitation include the controller for the printer). Theprocessor may be configured to subscribe to a plurality of sources ofcontent (such as the content sources 210 described above) selected by auser for fabrication by the three-dimensional printer through thenetwork interface. The processor may be further configured to receiveone or more three-dimensional models from the plurality of contentsources 210 and to select one of the one or more three-dimensionalmodels for fabrication by the three-dimensional printer 204 according toa user preference for prioritization. The user preference may, forexample, preferentially prioritize particular content sources 210, orparticular types of content (e.g., tools, games, artwork, upgrade parts,or content related to a particular interest of the user).

The memory of a three-dimensional printer 204 may be configured to storea queue of one or more additional three-dimensional models not selectedfor immediate fabrication. The processor may be programmed toperiodically re-order or otherwise alter the queue according topre-determined criteria or manual user input. For example, the processormay be configured to evaluate a new three-dimensional model based upon auser preference for prioritization, and to place the newthree-dimensional model at a corresponding position in the queue. Theprocessor may also or instead be configured to retrieve content from oneof the content sources 210 by providing authorization credentials forthe user, which may be stored at the three-dimensional printer orotherwise accessible for presentation to the content source 210. Theprocessor may be configured to retrieve content from at least one of theplurality of content sources 210 by authorizing a payment from the userto a content provider. The processor may be configured to search asecond group of sources of content (such as any of the content sources210 described above) according to one or more search criteria provide bya user. This may also or instead include demographic information for theuser, contextual information for the user, or any other implicit orexplicit user information.

In another aspect, there is disclosed herein a system for managingsubscriptions to three-dimensional content sources such as any of thecontent sources 210 described above. The system may include a web serverconfigured to provide a user interface over a data network, which userinterface is adapted to receive user preferences from a user including asubscription to a plurality of sources of a plurality ofthree-dimensional models, a prioritization of content from the pluralityof sources, and an identification of one or more fabrication resourcescoupled to the data network and suitable for fabricating objects fromthe plurality of three-dimensional models. The system may also include adatabase to store the user preferences, and to receive and store theplurality of three-dimensional models as they are issued by theplurality of sources. The system may include a processor (e.g., of aprint server 208, or alternatively of a client device 206 interactingwith the print server 208) configured to select one of the plurality ofthree-dimensional models for fabrication based upon the prioritization.The system may include a print server configured to communicate with theone or more fabrication resources through the data network, to determinean availability of the one or more fabrication resources, and totransmit the selected one of the plurality of three-dimensional modelsto one of the one or more fabrication resources.

In another aspect, there is disclosed herein a network ofthree-dimensional printing resources comprising a plurality ofthree-dimensional printers, each one of the plurality ofthree-dimensional printers including a network interface; a serverconfigured to manage execution of a plurality of print jobs by theplurality of three-dimensional printers; and a data network that couplesthe server and the plurality of three-dimensional printers in acommunicating relationship.

In general as described above, the server may include a web-based userinterface configured for a user to submit a new print job to the serverand to monitor progress of the new print job. The web-based userinterface may permit video monitoring of each one of the plurality ofthree-dimensional printers, or otherwise provide information useful to aremote user including image-based, simulation-based, textual-based orother information concerning status of a current print. The web-baseduser interface may include voice input and/or output for network-basedvoice control of a printer.

The fabrication resources may, for example, include any of thethree-dimensional printers 204 described above. One or more of thefabrication resources may be a private fabrication resource secured witha credential-based access system. The user may provide, as a userpreference and prior to use of the private fabrication resource,credentials for accessing the private fabrication resource. In anotheraspect, the one or more fabrication resources may include a commercialfabrication resource. In this case the user may provide an authorizationto pay for use of the commercial fabrication resource in the form of auser preference prior to use of the commercial fabrication resource.

Many current three-dimensional printers require significantmanufacturing time to fabricate an object. At the same time, certainprinters may include a tool or system to enable multiple, sequentialobject prints without human supervision or intervention, such as aconveyor belt. In this context, prioritizing content may be particularlyimportant to prevent crowding out of limited fabrication resources withlow priority content that arrives periodically for autonomousfabrication. As a significant advantage, the systems and methodsdescribed herein permit prioritization using a variety of user-specifiedcriteria, and permit use of multiple fabrication resources inappropriate circumstances. Thus prioritizing content as contemplatedherein may include any useful form of prioritization. For example, thismay include prioritizing the content according to source. The contentsources 210 may have an explicit type that specifies the nature of thesource (e.g., commercial or paid content, promotional content, productsupport content, non-commercial) or the type of content provided (e.g.,automotive, consumer electronics, radio control hobbyist, contestprizes, and so forth). Prioritizing content may include prioritizing thecontent according to this type. The three-dimensional models themselvesmay also or instead include a type (e.g., tool, game, home, art,jewelry, replacement part, upgrade part, etc.) or any other metadata,and prioritizing the content may include prioritizing the contentaccording to this type and/or metadata.

In one aspect, the processor may be configured to select two or more ofthe plurality of three-dimensional models for concurrent fabrication bytwo or more of the plurality of fabrication resources based upon theprioritization when a priority of the two or more of the plurality ofthree-dimensional models exceeds a predetermined threshold. That is,where particular models individually have a priority above thepredetermined threshold, multiple fabrication resources may be locatedand employed to fabricate these models concurrently. The predeterminedthreshold may be evaluated for each model individually, or for all ofthe models collectively such as on an aggregate or average basis.

In one aspect, the processor may be configured to adjust prioritizationbased upon a history of fabrication when a number of objects fabricatedfrom one of the plurality of sources exceeds a predetermined threshold.Thus, for example, a user may limit the number of objects fabricatedfrom a particular source, giving subsequent priority to content fromother sources regardless of an objectively determined priority for a newobject from the particular source. This prevents a single source fromoverwhelming a single fabrication resource, such as a personalthree-dimensional printer operated by the user, in a manner that crowdsout other content from other sources of possible interest. At the sametime, this may enable content sources 210 to publish on any convenientschedule, without regard to whether and how subscribers will be able tofabricate objects.

In another aspect, the processor may be configured to identify one ormore additional sources of content based upon a similarity to one of theplurality of sources of content. For example, where a content source 210is an automotive manufacturer, the processor may perform a search forother automotive manufactures, related parts suppliers, mechanics, andso forth. The processor may also or instead be configured to identifyone or more additional sources of content based upon a social graph ofthe user. This may, for example, include analyzing a social graph ofrelationships from the user to identify groups with common interests,shared professions, a shared history of schools or places of employment,or a common current or previous residence location, any of which may beused to locate other sources of content that may be of interest to theuser.

FIG. 3 is a block diagram of a three-dimensional printer system 300 thatincludes a three-dimensional printer 306 and a supply 302 of buildmaterial 312. The three-dimensional printer 306 may, for example, be anyof the three-dimensional printers described herein, and may include anetwork interface and other hardware and software to couple thethree-dimensional printer 306 in a communicating relationship with adata network as generally contemplated herein, and more specifically toretrieve data from remote resources concerning build materials detectedusing tags and tag readers.

The supply 302 may be adapted to be coupled to the three-dimensionalprint using a coupling 308. For example, the supply 302 may include aspool of filament, and the coupling 308 may be a spindle or the like onthe three-dimensional printer 306 to receive the spool in a manner thatpermits the spool to rotate and deliver the filament. In another aspect,the supply 302 may include a cartridge of any size and shape suitablefor containing build material, with the coupling 308 including acorresponding cartridge receptacle on the three-dimensional printer 306.The supply 302 may include any suitable container for build material312, such as a spool of build material, a cartridge of filament, or acontainer of bulk material such as pellets, or a container of liquid, aswell as combinations of these for a multi-modal printer. For example,the build material 312 may include at least one of acrylonitrilebutadiene styrene (ABS), high-density polyethylene (HDPL), polylacticacid (PLA), a photocurable polymer, or other suitable build material312. More generally, any build material 312 suitable for a correspondingthree-dimensional printer 306 in any suitable container or format may beused as the supply 302.

The supply 302 may include a data tag 304 that stores data providinginformation on characteristics of the build material 312. Once thesupply 302 is coupled to the three-dimensional printer 306, the data tag304 may be automatically read by a tag sensor 310 on thethree-dimensional printer 306.

The data tag 304 may be any device or combination of devices suitablefor storing data relating to the build material 312. This may, forexample, include a radio frequency identification (RFID) tag such as anactive or passive RFID tag, an optically-identifiable tag such as a barcode, quick read (QR) code, or the like, a magnetically-identifiable tagsuch as a magnetic swipe strip, or any other tag that can beautomatically detected and correlated by the controller 110 to identifyinformation for the build material 312 in the supply 302. The tag 304may also or instead include a number of mechanical features that encodeinformation in a manner that can be detected by corresponding sensors(e.g., contact switches or the like) when the supply 302 is coupled tothe printer 306. The mechanical features may include a plurality ofrecesses or protrusions encoding information about the build material312. As with the other tag sensors 310 described above, a tag sensor 310that mechanically reads data from the supply 302 may automaticallyidentify the supply 302 and provide data concerning a type of buildmaterial and the like to a controller.

The tag sensor 310 may be communicatively associated with thethree-dimensional printer 306 and the tag sensor 310 may be configuredto automatically read data from the data tag 304 regarding the supply302 of build material 312. The data may characterize at least oneproperty of the build material 312. For example, characteristic datastored on the data tag 304 may include at least one of a materialidentification number, a build material type, a build material diameter,an extruder temperature requirement, a build material meltingtemperature, a build material color, a build material color lot number,a cost per unit of build material, a build material density, a buildmaterial tensile strength, a build material viscosity, a build materialrecycle code, a build material expiration date, or other characteristicinformation appropriate for a three-dimensional printer. In anotheraspect, the data tag 304 may encode a unique identifier for the supply302, which can be used by the three-dimensional printer 306, e.g., incombination with a remote network resource, to determine properties ofthe build material 312 from which to further determine operationalparameters for a fabrication process using the build material 312.

Once the supply 302 has been coupled to the coupling 308 and the tagsensor 310 has read the data tag 304 data, the data may be transmittedto the controller, which may be any of the controllers described herein,to determine at least one operational parameter for thethree-dimensional printer 306 based on at least one characteristic ofthe build material 312 for the fabrication of an object 314. Forexample, the operational parameter may be at least one of an extrudertemperature, a feed rate, a build platform temperature, a build volumetemperature, an infill requirement, a rafting requirement, a supportstructure requirement, a cooling requirement, or other operationalparameter that might usefully be determined by the controller from thedata stored by the data tag 304.

In one embodiment, the controller may make the determination ofoperational parameters using only the data from the data tag 304. Forexample, the data tag 304 may explicitly specify an extruder temperatureand the controller may use the extruder temperature as an operationalparameter, or the data tag 304 may identify a type of build material andthe controller may calculate a suitable extruder temperature based onthe type. Similarly, the controller may calculate other operationalparameters such as build platform temperature, feed rate, coolingparameters, build chamber heating parameters, and so forth.

In another embodiment, the controller may include, or have access to, adata store that includes data related to a build material identificationnumber stored on the data tag 304. In this embodiment, the controllermay make the determination of operational parameters using the materialidentification number stored on the data tag 304, such as by using thematerial identification number as a key to look up correspondingoperational parameters (or information from which operational parameterscan be determined) in the data store.

As should be appreciated, the controller may use any combination of datafrom the data tag 304 and a local or remote data store to determine theoperational parameters. For example, the controller may receive the dataprovided by the data tag 304, lookup additional data within the datastore, and combine the two sets of data to determine the operationalparameters of the three-dimensional printer 306.

In another aspect, the determination of operational parameters mayinclude preliminary diagnostic tests such as whether the diameter of thebuild material, size of a build material pellet, build material fluidviscosity, or the like is appropriate for the three-dimensional printer306. Additional diagnostic test may be performed such as whether thecorrect build material 312 is provided on the supply 302, whether thecorrect color or color lot build material 312 is on the supply, or anyother appropriate preliminary diagnostic build material test used todetermine, as a threshold matter, whether a desired fabrication can beperformed with the supply 302.

In another aspect, the tag sensor 310 may be configured to read anauthentication code from the data tag 304 and the controller may beconfigured to conditionally build with the supply 302 of build material312 only when the authentication code can be authenticated by thecontroller. This form of authentication can provide a digital rightsmanagement system for three-dimensional printers and build materials byensuring that only authorized materials are used with suitably equippedthree-dimensional printers. A variety of cryptographic techniques areknown in the art for this type of authentication, any of which may besuitably employed to ensure that a proper authorization protocol isfollowed. This may, for example, include processing circuitry within thedata tag 304 along with processing circuitry in the three-dimensionalprinter 306, to authenticate the supply 302 in any suitable manner. Thisprocess may also cooperate with a remote resource such as a private orthird party key management system to provide any desired level of trustin the authentication process. This approach may generally facilitatequality control for suppliers of build material and greater consistencyin results obtained by end users.

In one aspect, an authentication code may be mechanically encoded into aspool or other container in a manner that keys the container so that itcannot be fitted to an incorrect three-dimensional printer, or in amanner that can be interpreted by the printer so that the printer willnot print in the absence of a suitable authentication code.

As described in FIG. 2, the three-dimensional printer 306 may beincluded in the networked three-dimensional printing environment 200. Inan embodiment, as part of the networked environment 200, thethree-dimensional printer system 300 may print an object 314 for aremote client device 206 using the network remote sources. In thisembodiment, the determination of operational parameters may be performedby the client device 206 or one of the other remote sources such as aprinter server 208, content source 210, web server 211, or otherresource 216. The three-dimensional printer 306 may transmit the datatag 304 data to one of the remote sources configured for determinationof the operational parameters and the appropriate remote source maytransmit the determined operational parameters back to thethree-dimensional printer 306 for fabrication of the object 314.

As a non-limiting example, a remote client device 206 may request anobject 314 be printed on the network connected three-dimensional printer306. The three-dimensional printer 306 may have one or more supplies302, containing build material 312, connected to one or more couplings308. The client device 206 may request the three-dimensional printer 306to transmit the data tag 304 data for one or more of the connectedsupplies 302 for the determination of operational parameters for atleast one of the connected supplies 302. The client device 206 mayselect which of the one or more supplies 302 to use in fabricating theobject 314, determine the operational parameters for the selected supply302, and transmit the operational parameters back to thethree-dimensional printer 306 for fabrication of the object 314.

As another non-limiting example, the three-dimensional printer 306 maybe configured to use other network entities to determine the operationalparameters for the fabrication of the object 314. If a print job isreceived, the three-dimensional printer 306 may transmit the data tag304 data for all of the connected supplies 302 to one or more of theremote sources for determination of operational parameters for theconnected supplies. The one or more remote source may determine theoperational parameters for the connected supplies 302 and transmit theoperational parameters back to the three-dimensional printer 306. Theoperational parameters may then be combined with the three-dimensionalprinter 306 print job information for the fabrication of the object 314.In another aspect, a print server 208 may request build materialinformation from one or more supplies coupled to a three-dimensionalprinter, and may store this information and make this informationavailable to users of the print server, or as an input to a process onthe print server for allocating print requests to variousthree-dimensional printers. More generally, data available from datatags 304 on supplies 302 may be used within the networkedthree-dimensional printing environment 200 to facilitate thedistribution and execution of print requests in any desired manner.

As should be appreciated, the communication between thethree-dimensional printer 306 and the remote sources of the networkedthree-dimensional printing environment 200 for the determination ofoperational parameters may be completed using any combination of thethree-dimensional printer 306 capabilities and network sourcecapabilities. For example, the three-dimensional printer 306 maydetermine some or all of the operational parameters of the availablesupplies 302 or the remote sources may determine some or all of theoperational parameters of the available supplies 302. The operationalparameters determined by the three-dimensional printer 306 and theremote resource may be combined into a single set of operationalparameters by either the three-dimensional printer 306 or the remotesource.

Returning to FIG. 3, the data tag 304 may also or instead encode data toidentify a recycling code or the like for the build material 312, and acorresponding recycling code or similar information may be incorporatedinto an object 314 fabricated from the build material 312, such as bycreating a corresponding symbol in an object 314 to be fabricated or byautomatically or manually fixing a corresponding symbol in a buildplatform onto which the object 314 is fabricated so that the symbol isimparted onto the object 314 during fabrication. Recycling codes may,for example, include Society of the Plastics Industry (SPI) resinidentification codes (currently 1-7 and 9 or ABS) or any other suitablenotations. Where multiple build materials are used in a single model,the multiple types, or a general indication (e.g., “mixed plastics”) mayalso or instead be used. In one aspect, the three-dimensional printermay be configured to accept user instructions concerning whether and howto deploy recycling labeling.

In another aspect, the data tag 304 may encode ordering information,such as information on how to purchase replacement build material, orinformation including an identifier of a suitable replacement container(with build material). When a three-dimensional printer or a suitablyinstrumented container detects a depletion of build material, the datatag 304 may be referenced by the three-dimensional printer toautomatically order a suitable replacement, or to generate an alert to auser to order replacement material. In the latter case, the alert to theuser may automatically be annotated to identify a part number, buildmaterial type, or the like to assist the user in ordering a suitablereplacement.

FIGS. 4A-4C depict embodiments of a build material supply 400 thatinclude a supply (402, 408, 412), a data tag 304, and build material(404, 410, 414). In general, FIGS. 4A-4C show the data tag 304 atcertain locations (i.e. the side of a spool or the front of acontainer), however, it should be appreciated that the data tag 304 maybe placed on any surface of the supply (402, 408, 412) that allows thedata tag 304 to be readable by the tag sensor 310. Additionally, FIGS.4A-4C depict non-limiting examples of supply containers (402, 408, 412),and any container that may be adapted to connect to thethree-dimensional printer 306 may be used to contain build material(404, 408, 412).

FIG. 4A depicts a container for a build material including a spool 402that contains a filament build material 404 and a data tag 304. Thecoupling 308 may include a spindle, and the spool 402 may be rotatablycoupled to the coupling 308 by the spindle. As the build material 404 isconsumed, the spool my rotate on the spindle of the coupling 308. Thespindle may include a key (not shown) that couples in a keyed manner tothe spool in order to ensure proper orientation of the spool 402 to thethree-dimensional printer 306 and the tag sensor 308, which may includeaxial orientation (i.e., so that the build material extends from thecorrect side of the spool) as well as rotational orientation (i.e., toorient a data tag 304 to a tag sensor 308 when the spool is placed foruse). In an embodiment, as the spool 402 is coupled to thethree-dimensional printer 308, the data tag 304 may be orientated withthe tag sensor 308 in a manner that allows the reading of the data tag304, and the tag sensor 308 may automatically read the data from thedata tag 304. In another embodiment, after the spool 402 is coupled tothe three-dimensional printer 306, spool 402 may rotate about thespindle until the data tag 304 is orientated with the tag sensor 308allowing the data tag 304 to be read by the tag sensor 308.

It will be appreciated that a filament of build material may be providedin other forms than on a spool, such as in a box from which the filamentfreely exits, or a cartridge that mates with a receptacle on athree-dimensional printer. All such forms of packaging may serve as acontainer as contemplated herein provided they can accommodate a datatag 304 that can be reliably detected and interpreted by a tag sensor308.

FIG. 4B depicts a container for a build material that includes acartridge 408 that contains pelletized build material 410 and a data tag304. While the cartridge 408 is shown with a viewing window, it shouldbe appreciated that a viewing window is not a requirement of thecartridge 408 and that the cartridge 408 may incorporate one or morewindows or no windows. The cartridge 408 may optionally include sensorsand processing circuitry to actively provide data concerning an amountof build material in the cartridge 408, which processing circuitry maybe locally powered by a battery or powered through an electroniccoupling to a three-dimensional printer. The cartridge 408 may becoupled to the coupling 308 of the three-dimensional printer 306 in amanner allowing the pellets of build material 410 to be fed intothree-dimensional printer for use in fabrication, e.g., by an extruderor other tool. As the cartridge 408 is coupled to the three-dimensionalprinter 308, the data tag 304 may be orientated with the tag sensor 308in a manner that allows the reading of the data tag 304, and the tagsensor 308 may automatically read the data from the data tag 304.

It will be understood that the pellets of build material 410 may be anysize or combination of sizes ranging from a fine powder to relativelylarge spheres or other shapes that can be melted and extruded.Similarly, the pellets may be of different colors, and the pellets mayinclude different materials that may be mixed during a fabricationprocess to obtain desired aggregate properties in a fabricated object.

FIG. 4C depicts a container for a build material that includes acartridge 412 containing a liquid build material 414 and a data tag 304.While the cartridge 412 is shown with a viewing window, it should beappreciated that a viewing window is not a requirement of the cartridge412 and that the cartridge 412 may incorporate one or more windows or nowindows. The cartridge 408 may optionally include sensors and processingcircuitry to actively provide data concerning an amount of buildmaterial in the cartridge 408, which processing circuitry may be locallypowered by a battery or powered through an electronic coupling to athree-dimensional printer. In an embodiment, the cartridge 412 may becoupled to the three-dimensional printer 306 coupling 308 in a mannerallowing the liquid 414 to be fed into an extruder or other tool for usein fabrication. As the cartridge 412 is coupled to the three-dimensionalprinter 308, the data tag 304 may be orientated with the tag sensor 308in a manner that allows the reading of the data tag 304, and the tagsensor 308 may automatically read the data from the data tag 304.

FIGS. 5A-5D depict embodiments of tag sensors and data tags. As may beappreciated, any of the data tags described in FIGS. 5A-5D may beincorporated into or attached to any of the supplies described in FIGS.4A-4C.

FIG. 5A depicts an embodiment of an RFID data tag 502 and an RFID tagsensor 504. The RFID data tag 502 may be a passive RFID tag or an activeRFID tag. As known by one with knowledge in the art, an active RFID tagincludes a power source that provides power to the active RFID tag tobroadcast a signal 508 that includes the data stored on the active RFIDtag. A passive RFID tag does not include an internal power source andthe passive RFID tag is powered by converting the RFID tag sensor 504signal 506 into a voltage. As previously discussed, the RFID data tag502 may be attached to the supply 302 in a position to allow the RFIDdata tag 502 to be read by the RFID tag sensor 504. The RFID tag sensor504 may be incorporated into the tag sensor 310 in a position to readthe RFID data tag 502. As a non-limiting example, as the supply 302 maybe coupled to the three-dimensional printer 306 coupling 308, and theRFID tag sensor 504 may broadcast a signal 506 requesting data from theRFID data tag 502. When the RFID data tag 502 receives the RFID tagsensor 504 broadcast 506, the RFID data tag 1002 may broadcast 508 therequested data to the RFID tag sensor 504. Once all the data has beenreceived by the RFID tag sensor 504, the RFID tag sensor 504 maytransmit the data to the controller 110 as discussed above.

FIG. 5B depicts an embodiment of an optical tag sensor 510 reading anoptically-identifiable tag (512, 514). The optically-identifiable tag(512, 514) may be a bar code 512, a QR code 514, or otheroptically-identifiable tag. As known by one with knowledge in the art,the optically-identifiable tag (512, 514) encodes data using lines orpoints arranged according to certain rules onto theoptically-identifiable tag (512, 514). The optically-identifiable tag(512, 514) may be attached to the supply 302 in a position accessible tothe optical tag sensor 510. The optical tag sensor 510 may be positionedto read the optically-identifiable tag (512, 514) in any suitablemanner. For example, when the supply 302 is coupled to thethree-dimensional printer 306 coupling 308, the optical tag sensor 510may optically capture 516 features of the optically-identifiable tag(512, 514), and convert the optically captured features to data. It willalso be understood that other optical detection techniques may be used,such as Optical Character Recognition or any other standardized orproprietary technique for encoding and reading data with opticalsensors. Once the data has been converted by the optical tag sensor 510,the optical tag sensor 510 may transmit the data to the controller 110as discussed above.

FIG. 5C depicts an embodiment of a magnetic tag sensor 520 reading amagnetically-identifiable tag 518. In an embodiment, themagnetically-identifiable tag 518 may be a magnetic swipe strip. Asknown to one with knowledge in the art, the magnetically-identifiabletag 518 includes data magnetically encoded into a magnetic strip whichmay be read as the magnetic strip is passed by a magnetic sensor. Aspreviously discussed, the magnetically-identifiable tag 518 may beattached to the supply 302 in a position to allow themagnetically-identifiable tag 518 to be read by the magnetic tag sensor520. The magnetic tag sensor 520 may be incorporated into the tag sensor310 in a position to read the magnetically-identifiable tag 518. In anon-limiting example, as the supply 302 is coupled to thethree-dimensional printer 306 coupling 308, the magnetic tag sensor 520may read the magnetic data of the magnetically-identifiable tag 518.Once the data has been read by the magnetic tag sensor 520, the magnetictag sensor 520 may transmit the data to the controller 110 as discussedabove.

FIG. 5D depicts an embodiment of a mechanical tag sensor 528 reading amechanical feature tag (524, 526). In an embodiment, a mechanicalfeature tag (524, 526) may include a plurality of protrusions 524,recesses 526, or other physical features on a container. Whilecylindrical features are depicted by way of illustration, it should beunderstood that the physical feature may be of any shape or sizesuitable for encoding data to be read by a mechanical tag sensor 528including without limitation hemispheres, grooves, holes, notches,blocks, and the like. Additionally, the physical feature types may beintermixed on the same mechanical feature tag (524, 526). For example, amechanical feature tag (524, 526) may include both protruding featuresand recessed features. In embodiments, the physical features may beincorporated onto a separate substrate 522 that is attached to thesupply 302, or may be incorporated directly into or onto the supply 302.The mechanical feature sensor 528 may include switches, transducers, orother devices for reading protruding or recessed physical features.

In general, the mechanical features forming the mechanical feature tags524, 526 may be formed into a spool or other container, and may includefeatures of the container itself, which may be further adapted toinclude human-readable information or the like to facilitate manualreview prior to coupling to a three-dimensional printer.

In embodiments, the mechanical feature tag 524, 526 may be read by themechanical tag sensor 528 through physical contact such as by pressinginto the mechanical tag sensor 528, passing through the mechanical tagsensor 528, passing over the mechanical tag sensor 528, passing underthe mechanical tag sensor 528, or any other suitable technique. Themechanical feature tag (524, 526) may also or instead be detected usingnon-contact methods such as capacitance, optical analysis, and so forth.The mechanical feature tag (524, 526) may be attached to the supply 302in a position to allow the mechanical feature tag (524, 526) to be readby the mechanical tag sensor 528. The mechanical tag sensor 528 may beincorporated into the tag sensor 310 in a position to read themechanical feature tag (524, 526). In a non-limiting example, as thesupply 302 is coupled to the three-dimensional printer 306 coupling 308,the mechanical tag sensor 528 may read the physical feature data of themechanical feature tag (524, 526). Once the data has been read by themechanical tag sensor 528, the mechanical tag sensor 528 may transmitthe data to the controller 110 as discussed above.

FIG. 6 is a flowchart of a method for using a three-dimensional printerto read build material supply tag data and fabricate an object.

As shown in step 602, the method 600 may include providing athree-dimensional printer with a controller and a tag sensor. In oneaspect, this may include providing a tag sensor as an add-on componentto a three-dimensional printer and coupling the tag sensor to thecontroller for the three-dimensional printer. In another aspect, thismay simply include providing a three-dimensional printer that isequipped with a suitable tag sensor.

As shown in step 604, the method 600 may include coupling a containerwith a data tag to the three-dimensional printer. The container may beany of the containers of build material described above, and the datatag may store information about the build material such as a property ofthe build material in the container. The data tag may be a radiofrequency identification (RFID) tag, an optically-identifiable tag, amagnetically-identifiable tag, or a mechanically encoded feature of thecontainer.

Types of data that may be usefully stored by the data tag are describedabove. Without limiting the generality of the foregoing, the data mayinclude information about mechanical or structural properties of thebuild material, thermal properties of the build material (includingphase change data), aesthetic properties of the build material, or anyother properties useful for determining operational parameters. Otherdata that is not necessarily specifically tied to operational parametersmay also be included, such as an amount of material in the container(which may be an initial amount when shipped, or a measured amount usingactive circuitry as described above), an expiration date, a brand name,and so forth, as well as data indirectly related to build materialproperties such as a unique identifier for the build material or thecontainer. By way of non-limiting examples, the property characteristicencoded on the data tag may include a material identification number, atype of the build material, a diameter of the build material, anextruder temperature requirement, a melting temperature of the buildmaterial, a color of the build material, a lot number of the buildmaterial, a unit cost of the build material, a density of the buildmaterial, a tensile strength of the build material, a viscosity of thebuild material, a recycling category or code for the build material, andan expiration date for the build material.

As shown in step 606, the method 600 may include reading data from thedata tag using the tag sensor of the three-dimensional printer. Asdescribed above, the data may be read by an RFID sensor, optical sensor,magnetic sensor, or mechanical sensor.

As shown in step 608, the method 600 may include transmitting the datafrom tag sensor to the controller. As discussed above, the controllermay be associated with the local three-dimensional printer printing theobject, or the controller may be associated with a remote resourcewithin a networked three-dimensional printing environment.

As shown in step 610, the method 600 may include determining anoperational parameter for the fabrication of an object by thethree-dimensional printer based on data from the data tag. Morespecifically information about the build material stored in the data tagmay be used to determine how the build material should be used in afabrication process. For example, based upon the type of build material,the controller may determine a variety of parameters such as an extrudertemperature, a feed rate, a build platform temperature, a build volumetemperature, an infill requirement, a rafting requirement, a supportstructure requirement, an extruder movement speed, and a coolingrequirement. More generally, any parameter that can be controlled by thethree-dimensional printer might usefully be determined with reference tothe type of material and/or other information available on the data tag.

In one aspect where the data tag and reader implement a rightsmanagement protocol for build material, the operational parameter may bean authorization to print. Thus for example, the reader may read anauthentication code which may be transmitted to a controller and used toauthenticate the build material for the printer. It will be understoodthat a variety of cryptographic techniques may be suitably employed toimplement rights management for build material. For example, thecontainer may have a private key that is used to sign a message from thecontroller, with the corresponding signed message confirmed by a remoteresource. More generally, any suitable protocol may be usefully employedwith varying degrees of security and trust, including without limitationtechniques ranging from a direct reading of a static code encoded on adata tag to public key management infrastructures (either implementeddirectly or through a trusted third party) to multi-factor securitytechniques including security cards or equivalents (e.g., for thecontainer, printer, and/or user of the printer), passwords or othercredentials, biometric identification (e.g., voice identification,fingerprint detection, facial recognition, etc.), and so forth.

As shown in step 612, the method 600 may include fabricating an objectwhile using the operational parameter(s) to control operation of athree-dimensional printer. It will be appreciated that this approach candramatically simplify use of a three-dimensional printer by automatingthose aspects of printer configuration that depend on the type of buildmaterial being used. Thus a user may simply load a build materially froma suitably instrumented container and select an object to print withoutspecifying various configuration details that might otherwise berequired. At the same time, a printer may simply select defaultoperational parameters that a user can override if further customizationof a fabrication process is desired.

The methods or processes described above, and steps thereof, may berealized in hardware, software, or any combination of these suitable fora particular application. The hardware may include a general-purposecomputer and/or dedicated computing device. The processes may berealized in one or more microprocessors, microcontrollers, embeddedmicrocontrollers, programmable digital signal processors, or otherprogrammable device, along with internal and/or external memory. Theprocesses may also, or instead, be embodied in an application specificintegrated circuit, a programmable gate array, programmable array logic,or any other device or combination of devices that may be configured toprocess electronic signals. It will further be appreciated that one ormore of the processes may be realized as computer executable codecreated using a structured programming language such as C, an objectoriented programming language such as C++, or any other high-level orlow-level programming language (including assembly languages, hardwaredescription languages, and database programming languages andtechnologies) that may be stored, compiled or interpreted to run on oneof the above devices, as well as heterogeneous combinations ofprocessors, processor architectures, or combinations of differenthardware and software.

Thus, in one aspect, each method described above and combinationsthereof may be embodied in computer executable code that, when executingon one or more computing devices, performs the steps thereof. In anotheraspect, the methods may be embodied in systems that perform the stepsthereof, and may be distributed across devices in a number of ways, orall of the functionality may be integrated into a dedicated, standalonedevice or other hardware. In another aspect, means for performing thesteps associated with the processes described above may include any ofthe hardware and/or software described above. All such permutations andcombinations are intended to fall within the scope of the presentdisclosure.

It should further be appreciated that the methods above are provided byway of example. Absent an explicit indication to the contrary, thedisclosed steps may be modified, supplemented, omitted, and/orre-ordered without departing from the scope of this disclosure.

The method steps of the invention(s) described herein are intended toinclude any suitable method of causing such method steps to beperformed, consistent with the patentability of the following claims,unless a different meaning is expressly provided or otherwise clear fromthe context. So for example performing the step of X includes anysuitable method for causing another party such as a remote user or aremote processing resource (e.g., a server or cloud computer) to performthe step of X. Similarly, performing steps X, Y and Z may include anymethod of directing or controlling any combination of such otherindividuals or resources to perform steps X, Y and Z to obtain thebenefit of such steps.

While particular embodiments of the present invention have been shownand described, it will be apparent to those skilled in the art thatvarious changes and modifications in form and details may be madetherein without departing from the spirit and scope of this disclosureand are intended to form a part of the invention as defined by thefollowing claims, which are to be interpreted in the broadest senseallowable by law.

What is claimed is:
 1. A method, comprising: providing athree-dimensional printer that includes a controller and a tag sensor;coupling a container of a build material to the three-dimensionalprinter, the container including a tag that stores at least one propertyof the build material and a private key to prevent use of anunauthorized build material with the three-dimensional printer;transmitting a message from the controller to the tag; signing themessage at the tag with the private key to provide a signed message andreturning the signed message to the controller; transmitting the signedmessage from the controller to a resource for authentication; when thesigned message cannot be authenticated by the resource, preventingfabrication with the build material on the three-dimensional printer;and when the signed message is authenticated: determining an operationalparameter with the controller for configuring the three-dimensionalprinter for a fabrication process using the build material based upon atleast one property of the build material from the tag; and fabricatingan object with the three-dimensional printer based upon the operationalparameter.
 2. The method of claim 1 wherein the resource includes athird-party key management system.
 3. The method of claim 1 wherein theresource is a remote resource managed by a third party.
 4. The method ofclaim 1 wherein the tag includes at least one of a radio frequencyidentification (RFID) tag, an optically-identifiable tag, amagnetically-identifiable tag, and a mechanical feature of thecontainer.
 5. The method of claim 1 wherein the tag further comprisesdata including at least one of a material identification number, a buildmaterial type, a build material diameter, an extruder temperaturerequirement, a build material melting temperature, a build materialcolor, a build material color lot number, a cost per unit of buildmaterial, a build material density, a build material tensile strength, abuild material viscosity, a build material recycle code, and a buildmaterial expiration date.
 6. The method of claim 1 wherein theoperational parameter includes at least one of an extruder temperature,a feed rate, a build platform temperature, a build volume temperature,an infill requirement, a rafting requirement, a support structurerequirement, and a cooling requirement.
 7. The method of claim 1 whereinthe container includes at least one of a cartridge and a spool.
 8. Themethod of claim 1 wherein the build material includes at least one of afilament, a number of pellets, and a liquid.
 9. The method of claim 1wherein the build material includes at least one of acrylonitrilebutadiene styrene (ABS), high-density polyethylene (HDPL), andpolylactic acid (PLA).
 10. The method of claim 1 wherein the tagincludes a radio frequency identification (RFID) tag, and the RFID tagis at least one of a passive RFID tag and an active RFID tag.
 11. Themethod of claim 1 wherein the tag includes an optically-identifiabletag, and the optically-identifiable tag is at least one of bar code andquick read (QR) code.
 12. The method of claim 1 wherein the tag includesa magnetically-identifiable tag, and the magnetically-identifiable tagis a magnetic swipe strip.
 13. The method of claim 1 wherein the tagincludes a mechanical feature of the container, and the mechanicalfeature includes a plurality of recesses or protrusions encodinginformation about the build material.
 14. The method of claim 1 whereinthe tag sensor includes at least one of a radio frequency identification(RFID) reader, an optical scanner, a magnetic reader, and a contactpoint sensor.
 15. The method of claim 1 wherein determining theoperational parameter is based upon a build material identificationnumber contained in data included in the tag.